	//检查此结点的全部父结点,分为两种情况,一种是选中,一种是取消,只有取消才经过if(!isChked)流程
	function chkParent(form, pid, isChked) {
		var len = form.elements.length;
		var isChange = true;
		//如果取消选中,此时只需要检查取消的状态

		if (!isChked) {
			for (var i = 0; i < len; i++) {
				//判断同级的节点有没有被选中的

				if (form.elements[i].pid == pid) {
					if (form.elements[i].checked) {
						isChange = false;
						break;
					}
				}
			}
		}
		for (var i = 0; i < len; i++) {
			if (form.elements[i].value == pid) {
				if (isChange) {
					form.elements[i].checked = isChked;
				}
				//检查再上一个父结点
				chkParent(form, form.elements[i].pid, isChked);
				//当前结点,只有一个最近的父结点

				break;
			}
		}
	}
	//将此结点下的结点全部选中
	function chkSub(form, nodeID, isChked) {
		//得到表单中共有多少个input
		var len = form.elements.length;
		for (var i = 0; i < len; i++) {
			if (form.elements[i].pid == nodeID) {	
				form.elements[i].checked = isChked;
				//查看它下面是否还有字结点,如果有则选中或取消

				chkSub(form, form.elements[i].value, isChked);
			}
		}
	}
	//控制类

	function chkPermit(form, nodeID, pid, isChked) {
		chkParent(form, pid, isChked);
		chkSub(form, nodeID, isChked);
	}
